S-matrix technique for circuit simulation

ABSTRACT

A methodology for combining two or more S-parameter blocks/matrices (each representing a circuit or network, or the interconnection between a circuit or network) into a single S-matrix are described. Such a matrix may be beneficially used to simulate the circuit or network represented by the multiply interconnected circuits or networks.

BACKGROUND

The invention relates generally to integrated circuit simulation and, more particularly but not by way of limitation, to techniques for simulating the interconnections between multiple integrated circuit components using only an S-parameter based approach.

Modern computer systems may be thought of as a combination of a number of interconnected subsystems. For example, a personal computer (“PC”) typically includes a power subsystem (to generate and distribute electrical power), a memory subsystem (to access, use and control system memory), a processor subsystem (to access, use and control one or more system processors), etc. Each subsystem, in turn, may itself be composed of multiple interconnected devices.

Referring to FIG. 1, illustrative PC memory subsystem 100 includes four (4) dual in-line memory modules (“DIMMs”) 105-120 coupled to motherboard 125 through connectors 130-145 and further coupled to memory controller 150 through electrically conductive paths (not shown). Referring to FIG. 2, illustrative DIMM 200 (e.g., one of 105-120) includes memory dies 205-240, each coupled to one of packages 245-280 each of which is further coupled to DIMM 200 (see, for example, part number MT8HTF3264A from Micron Technologies, Inc.). DIMM 200 could then, for example, couple to a motherboard (e.g., motherboard 125) via connector 285 (e.g., one of 130-145).

If DIMM 200 is used in memory subsystem 100, there are 7,200 interconnections or ports that must be identified and modeled during the design and simulation of subsystem 100: each memory die (e.g., 205-240) has 60 interconnects or ports to its package—(60×8×4); each package (e.g., 245-280) has 60 interconnects or ports to its module—(60×8×4); each module (e.g., 200 or 105-120) has 240 interconnects to its motherboard connector—(240×4); each connector (e.g., 130-145) has 240 interconnects to motherboard 125—(240×4); and memory controller 150 has 1,440 interconnects (memory controller die to memory controller package and memory controller package to motherboard).

As the complexity of individual circuits and the systems within which these circuits are used increase, fast and accurate simulations become more important in both the pre-layout and post-layout phase of system design. Accurate circuit simulations can provide feedback to design engineers to aid in their designs' refinement so that circuit and system objectives may be met. Prior art circuit simulation packages such as SPICE (Simulation Program Integrated Circuits, developed at the University of California, Berkeley) simulate circuit behavior using a modified nodal analysis (“MNA”) approach. In MNA, an equation for the voltage at each node in a network in terms of the current through the node is developed in accordance with Kirchoff's current law. The collection of all such equations for a network is represented in matrix form. Solution of the matrix is tantamount to simulating the circuit.

As circuit operational frequencies have increased, discontinuities such as interconnects (e.g., see FIG. 2) are described most easily in terms of S parameters. It will be recognized by those of ordinary skill in the art of circuit simulation that S parameters refer to the scattering matrix—a matrix that describes the response of an N-port network to voltage signals at each port. Prior art incorporation of S parameter blocks into a circuit simulation application is achieved by transforming the scattering matrices for each block into admittance or impedance matrices. Unfortunately, this transformation can be slow and result in admittance and/or impedance matrices that are ill-conditioned. Ill-conditioned matrices within a MNA-based application can, in turn, introduce significant numerical errors into the simulation's result—dramatically reducing the quality and reliability of the simulation's result. Thus, it would be beneficial to provide a technique to combine multiple S-parameter block matrices (each representing the behavior of a circuit or the interconnection between different circuits or networks) so that the combined circuit may be simulated directly using S parameters/matrices.

SUMMARY

Methods in accordance with the invention combine two or more S-parameter descriptions of electronic circuits or networks into a single S-parameter description, the combined S-parameter description incorporating or accounting for connections between the individual electronic circuits or networks. The combined S-parameter description permits the simulation of large, complex circuits or networks wholly using S-parameters, thereby eliminating the need to convert S-parameter descriptions into impedance and/or admittance descriptions and, as a consequence, the introduction of numerical errors as a result thereof.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows, in block diagram form, an illustrative memory subsystem for a personal computer.

FIG. 2 shows, in block diagram form, components of an illustrative dual in-line memory module.

FIG. 3 shows, in flowchart form, S-matrix representation method for electronic circuit simulation in accordance with one embodiment of the invention.

FIG. 4 defines the notation introduced in EQ. 9.

DETAILED DESCRIPTION

In the following detailed description, a methodology for combining two or more S matrices (each representing a circuit or network, or the interconnection between a circuit or network) into a single S-matrix is described. Such a matrix may be beneficially used to simulate the combined network—that is, the network comprising the combined individual networks or circuits. As used herein, the term “simulate” means to simulate the electrical behavior of an electronic circuit. The invention, described in terms of modeling and simulating the interconnections between memory subsystem components, is presented to enable any person skilled in the art to make and use the invention as claimed, variations of which will be readily apparent to those skilled in the art. Accordingly, the claims appended hereto are not intended to be limited by the disclosed embodiment, but are to be accorded their widest scope consistent with the principles and features disclosed herein.

It will be recognized that an electronic circuit may be viewed as a multi-port network, and that multi-port networks may themselves be viewed as interconnected sub-networks. The dual, that individual sub-networks may be combined to form a single network (representing a complex circuit), will also be understood by those of ordinary skill. This insight, and the detailed teaching below, makes it possible to represent interconnected S-matrix representations of multiple sub-networks as a single S-matrix. This, in turn, permits the simulation of large, complex circuits wholly using S-parameters—eliminating the need to convert S-parameter descriptions into impedance and/or admittance descriptions and, as a consequence, the introduction of numerical errors as a result thereof.

Referring to FIG. 3, S-matrix representation method 300 in accordance with one embodiment of the invention is illustrated in flowchart form. To begin, two or more S-matrices are identified (block 305), each representing an element, component or sub-network of the desired final circuit. Referring to FIGS. 1 and 2, for example, S-matrix representations for each die (e.g., die 205), package (e.g., package 245), memory module (e.g., DIMM 200) and motherboard connector (e.g., connector 130) comprising memory subsystem 100 are identified or obtained. Next, the individual sub-network S-matrices are combined to form a single S-matrix, [S] (block 310). In one embodiment, S-matrix [S] is formed by placing each sub-network's S-matrix along the diagonal of matrix [S], and zeros in all other positions. For example, if there exists “n” sub-network S-matrices [S1] through [Sn], S-matrix [S] of block 310 is given by:

$\begin{matrix} {\lbrack S\rbrack = \begin{bmatrix} \left\lbrack {S\; 1} \right\rbrack & \ldots & 0 \\ \vdots & ⋰ & \vdots \\ 0 & \ldots & \lbrack{Sn}\rbrack \end{bmatrix}} & {{EQ}.\mspace{14mu} 1} \end{matrix}$

To begin the interconnection process, a port from each of two sub-networks is identified (block 315). Through techniques described below, the interconnection of these ports result in S-matrix [S′] having two less rows and two less columns than the S-matrix before such interconnections are incorporated (block 320). If all interconnections between the plurality of sub-network S-matrices have been incorporated into S-matrix [S′] (the “Yes” prong of block 325), formation of S-matrix [S′] is complete and may be used to simulate the desired circuit (block 330). If all interconnections between the plurality of sub-network S-matrices have not been incorporated into S-matrix [S′] (the “No” prong of block 325), S-matrix [S′] is used as the new “starting point” and processing continues at block 315. That is, S-matrix [S′] is treated as S-matrix [S] for purposes of incorporating or accounting for a next interconnection. As shown if FIG. 3, acts in accordance with blocks 315 and 320 are repeated until all connections between the various sub-networks have been incorporated into S-matrix [S′].

It is significant to note that S-matrix [S′] of block 330 is described only in terms of S-parameters. Further, as will be shown below, generation of S-matrix [S′] in accordance with the invention does not require the use of admittance and/or impedance descriptions of any sub-network. Accordingly, circuit simulations using S-matrix [S′] can lead to faster and more accurate circuit simulations than prior art techniques.

As described, FIG. 3 outlines a means, technique or methodology directed to accounting for one-to-one connections between different sub-networks. That is, connecting port A in sub-network A′ to port B in sub-network B′. It will be recognized that this approach is equally capable of accounting for more complex interconnection topologies. For example, if port A in sub-network A′ is to be connected to port B in sub-network B′ and also to port C in sub-network C′, S-matrix representation 300 can account for this by first connecting Port A to port B, and then connecting port C.

For purposes of illustration, let the acts of block 305 identify two sub-networks S1 and S2 that are each described in terms of their S-matrix, [S1] and [S2]. S-matrix [S1] could, for example, represent a single memory die such as die 205 while S-matrix [S2] could represent the package to which the die is to be connected, i.e., package 245. Alternatively, S-matrix [S1] could represent DIMM 200 with all of its internal components already interconnected (i.e., each of dies 205-240 connected to their respective one of packages 245-280, each of which are, in turn, connected to DIMM 200) while S-matrix [S2] could represent a motherboard DIMM connector (e.g., connector 105).

In accordance with block 310, S-matrices [S1] and [S2] are combined as shown in EQ. 2 to form matrix [S]:

$\begin{matrix} {\lbrack S\rbrack_{N \times N} = {\left\lfloor \begin{matrix} \left\lbrack {S\; 1} \right\rbrack & 0 \\ 0 & \left\lbrack {S\; 2} \right\rbrack \end{matrix} \right\rfloor.}} & {{EQ}.\mspace{14mu} 2} \end{matrix}$

In accordance with block 315, assuming that port i in sub-network S1 is to be connected to port j in sub-network S2. The scattering parameter equation for this network is then given by:

$\begin{matrix} {{\left\lfloor \begin{matrix} b_{1} \\ \vdots \\ b_{i} \\ \vdots \\ b_{j} \\ \vdots \\ b_{N} \end{matrix} \right\rfloor = {\lbrack S\rbrack_{N \times N}\left\lfloor \begin{matrix} a_{1} \\ \vdots \\ a_{i} \\ \vdots \\ a_{j} \\ \vdots \\ a_{N} \end{matrix} \right\rfloor_{N \times 1}}},} & {{EQ}.\mspace{14mu} 3} \end{matrix}$ where, [a] represents the signals incident or input to network S, [b] represents the signals reflected or output from network S and the ith and jth elements a_(i), a_(j), b_(i) and b_(j) represent the ith and jth ports of the two sub-networks S1 and S2. If, as we assume here, port i and j are to be connected the connection equation is given by:

$\begin{matrix} {\begin{bmatrix} b_{i} \\ b_{j} \end{bmatrix} = {{\begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix}\begin{bmatrix} a_{i} \\ a_{j} \end{bmatrix}}.}} & {{EQ}.\mspace{14mu} 4} \end{matrix}$

Next, interconnection operations in accordance with block 320 begin by performing row transformations on the disconnected network represented by EQ. 3 such that element b_(i) is swapped with element b₁ and element b_(j) is swapped with element b₂:

$\begin{matrix} {\begin{bmatrix} b_{i} \\ b_{j} \\ \vdots \\ b_{1} \\ \vdots \\ b_{2} \\ \vdots \\ b_{N} \end{bmatrix} = {{\left\lfloor \begin{matrix} S_{i\; 1} & S_{i\; 2} & \ldots & S_{iN} \\ S_{j\; 1} & S_{j\; 1} & \ldots & S_{jN} \\ \vdots & \; & \; & \vdots \\ S_{11} & S_{12} & \ldots & S_{1N} \\ \vdots & \; & \; & \vdots \\ S_{21} & S_{22} & \ldots & S_{2N} \\ \vdots & \; & \; & \vdots \\ S_{N\; 1} & S_{N\; 2} & \ldots & S_{NN} \end{matrix} \right\rfloor_{N \times N}\begin{bmatrix} a_{i} \\ a_{2} \\ \vdots \\ a_{i} \\ \vdots \\ a_{j} \\ \vdots \\ a_{N} \end{bmatrix}}_{N \times 1}.}} & {{EQ}.\mspace{14mu} 5} \end{matrix}$ For convenience and to reduce notational clutter, let the S-matrix of EQ. 5 be represented as [S3], that is:

$\begin{matrix} {\left\lbrack {S\; 3} \right\rbrack = {\left\lfloor \begin{matrix} S_{i\; 1} & S_{i\; 2} & \ldots & S_{iN} \\ S_{j\; 1} & S_{j\; 1} & \ldots & S_{jN} \\ \vdots & \; & \; & \vdots \\ S_{11} & S_{12} & \ldots & S_{1N} \\ \vdots & \; & \; & \vdots \\ S_{21} & S_{22} & \ldots & S_{2N} \\ \vdots & \; & \; & \vdots \\ S_{N\; 1} & S_{N\; 2} & \ldots & S_{NN} \end{matrix} \right\rfloor_{N \times N}.}} & {{EQ}.\mspace{14mu} 6} \end{matrix}$

Column operations on the system of EQ. 5 (using EQ. 6 notation) are now performed such that element a_(i) is swapped with element a₁ and element a_(j) is swapped with element a₂:

$\begin{matrix} \begin{matrix} {\begin{bmatrix} {\; b_{\; i}} \\ {\; b_{\; j}} \\ \vdots \\ {\; b_{\; 1}} \\ \vdots \\ {\; b_{\; 2}} \\ \vdots \\ {\; b_{\; N}} \end{bmatrix} = \left\lfloor \begin{matrix} {S\; 3_{1\; i}} & {S\; 3_{1\; j}} & \ldots & {S\; 3_{11}} & \ldots & {S\; 3_{12}} & \ldots & {S\; 3_{1\; N}} \\ {S\; 3_{2\; i}} & {S\; 3_{2\; j}} & \ldots & {S\; 3_{21}} & \ldots & {S\; 3_{22}} & \ldots & {S\; 3_{2\; N}} \\ \vdots & \; & \; & \; & \vdots & \; & \; & \vdots \\ \vdots & \; & \; & \; & \vdots & \; & \; & \vdots \\ \vdots & \; & \; & \; & \vdots & \; & \; & \vdots \\ \vdots & \; & \; & \; & \vdots & \; & \; & \vdots \\ \vdots & \; & \; & \; & \vdots & \; & \; & \vdots \\ {S\; 3_{Ni}} & {S\; 3_{Nj}} & \ldots & {S\; 3_{N\; 1}} & \ldots & {S\; 3_{N\; 2}} & \ldots & {S\; 3_{NN}} \end{matrix} \right\rfloor_{N \times N}} \\ {\begin{bmatrix} a_{i} \\ a_{j} \\ \vdots \\ a_{1} \\ \vdots \\ a_{2} \\ \vdots \\ a_{N} \end{bmatrix}_{N \times 1}.} \end{matrix} & {{EQ}.\mspace{14mu} 7} \end{matrix}$

Again, for convenience and to reduce notational clutter, let the S-matrix of EQ. 7 be represented as [S4], that is:

$\begin{matrix} {\left\lbrack {S\; 4} \right\rbrack = \left\lfloor \begin{matrix} {S\; 3_{1\; i}} & {S\; 3_{1\; j}} & \ldots & {S\; 3_{11}} & \ldots & {S\; 3_{12}} & \ldots & {S\; 3_{1\; N}} \\ {S\; 3_{2\; i}} & {S\; 3_{2\; j}} & \ldots & {S\; 3_{21}} & \ldots & {S\; 3_{22}} & \ldots & {S\; 3_{2\; N}} \\ \vdots & \; & \; & \; & \vdots & \; & \; & \vdots \\ \vdots & \; & \; & \; & \vdots & \; & \; & \vdots \\ \vdots & \; & \; & \; & \vdots & \; & \; & \vdots \\ \vdots & \; & \; & \; & \vdots & \; & \; & \vdots \\ \vdots & \; & \; & \; & \vdots & \; & \; & \vdots \\ {S\; 3_{Ni}} & {S\; 3_{Nj}} & \cdots & {S\; 3_{N\; 1}} & \cdots & {S\; 3_{N\; 2}} & \cdots & {S\; 3_{NN}} \end{matrix} \right\rfloor_{N \times N}} & {{EQ}.\mspace{14mu} 8} \end{matrix}$

Rewriting EQ. 7 in matrix partition format (using EQ. 8 notation) yields

$\begin{matrix} {{\begin{bmatrix} b_{i} \\ b_{j} \\ \overset{->}{b} \end{bmatrix} = {\begin{bmatrix} \left\lbrack {S\; 5} \right\rbrack_{2 \times 2} & \left\lbrack {S\; 6} \right\rbrack_{2 \times {({N - 2})}} \\ \left\lbrack {S\; 7} \right\rbrack_{{({N - 2})} \times 2} & \left\lbrack {S\; 8} \right\rbrack_{{({N - 2})} \times {({N \times 2})}} \end{bmatrix}_{N \times N}\begin{bmatrix} a_{i} \\ a_{j} \\ \overset{->}{a} \end{bmatrix}}_{N \times 1}},} & {{EQ}.\mspace{14mu} 9} \end{matrix}$ where [{right arrow over (b)}], [{right arrow over (a)}], [S5], [S6], [S7] and [S8] are as defined in FIG. 4.

Rewriting EQ. 9 to separate b_(i) and b_(j) yields:

$\begin{matrix} {\left\lfloor \begin{matrix} b_{i} \\ b_{j} \end{matrix} \right\rfloor = {{\left\lbrack {S\; 5} \right\rbrack_{2 \times 2}\left\lfloor \begin{matrix} a_{i} \\ a_{j} \end{matrix} \right\rfloor_{2 \times 1}} + {\left\lbrack {S\; 6} \right\rbrack_{2 \times {({N - 2})}}\left\lbrack \overset{->}{a} \right\rbrack}_{{({N - 2})} \times 1}}} & {{EQ}.\mspace{14mu} 10} \\ {\left\lbrack \overset{->}{b} \right\rbrack = {{\left\lbrack {S\; 7} \right\rbrack_{{({N - 2})} \times 2}\left\lfloor \begin{matrix} a_{i} \\ a_{j} \end{matrix} \right\rfloor_{2 \times 1}} + {\left\lbrack {S\; 8} \right\rbrack_{{({N - 2})} \times {({N \times 2})}}\left\lbrack \overset{->}{a} \right\rbrack}_{{({N - 1})} \times 1^{\prime}}}} & {{EQ}.\mspace{14mu} 11} \end{matrix}$ and

Substituting EQ. 4 into EQ. 10 yields:

$\begin{matrix} {{{\begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix}\begin{bmatrix} a_{i} \\ a_{j} \end{bmatrix}} = {{\left\lbrack {S\; 5} \right\rbrack_{2 \times 2}\begin{bmatrix} a_{i} \\ a_{j} \end{bmatrix}}_{2 \times 1} + {\left\lbrack {S\; 6} \right\rbrack_{2 \times {({N - 2})}}\left\lbrack \overset{->}{a} \right\rbrack}_{{({N - 2})} \times 1}}},} & {{EQ}.\mspace{14mu} 12} \end{matrix}$ which is equivalent to (in EQ. 13, the first item on right side of equation should not be there.)

$\begin{matrix} {{\left\lfloor {\begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix} - \left\lbrack {S\; 5} \right\rbrack} \right\rfloor\left\lfloor \begin{matrix} a_{i} \\ a_{j} \end{matrix} \right\rfloor} = {{\left\lbrack {S\; 6} \right\rbrack_{2 \times {({N - 2})}}\left\lbrack \overset{->}{a} \right\rbrack}_{{({N - 2})} \times 1}.}} & {{EQ}.\mspace{14mu} 13} \end{matrix}$ Letting

$\begin{matrix} {\left\lbrack {S\; 9} \right\rbrack = \left\lfloor {\begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix} - \left\lbrack {S\; 5} \right\rbrack} \right\rfloor_{2 \times 2}} & {{EQ}.\mspace{14mu} 14} \end{matrix}$ yields:

$\begin{matrix} {\left\lfloor \begin{matrix} a_{i} \\ a_{j} \end{matrix} \right\rfloor = {{{\left\lbrack {S\; 9} \right\rbrack_{2 \times 2}^{- 1}\left\lbrack {S\; 6} \right\rbrack}_{2 \times {({N - 2})}}\left\lbrack \overset{->}{a} \right\rbrack}_{{({N - 2})} \times 1}.}} & {{EQ}.\mspace{14mu} 15} \end{matrix}$

Substituting EQ. 15 into EQ. 11 yields: [{right arrow over (b)}]=[S7]_((N-2)×2) [S9]_(2×2) ⁻¹ [S6]_(2×(N-2)) [{right arrow over (a)}] _((N-2)×1) +[S8]_((N-2)×(N-2)) [{right arrow over (a)}] _((N-2)×1′)  EQ. 16 which can be written as: [{right arrow over (b)}]=[S′] _((N-2)×(N-2)) [{right arrow over (a)}] _((N-2)×1′)  EQ. 17 where [S′]=[S7][S9]⁻¹[S6]+[S8].

S-Matrix [S′] represents the connected S-matrix having two fewer rows and two fewer columns than original S-Matrix [S] (see EQ. 3). That is, S-Matrix [S′] represents sub-network S1 connected to sub-network S2 via ports i and j. As noted above with respect to FIG. 3, this process may be repeated for each port of a first sub-network that is to be connected to another port of a second sub-network. When all such connections have been accounted for (i.e., the “Yes” prong of block 325 in FIG. 3), S-Matrix [S′] may be used directly to simulate the behavior of the interconnected sub-networks—i.e., the circuit or system represented by S-matrix [S′].

As described herein, an electronic circuit or system may be simulated using an S-matrix generated directly from sub-network S-matrices. No translation from S parameter based descriptions to impedance and/or admittance based descriptions are needed (such translations are required in prior art MNA simulators). As a result, simulations using an S-matrix description in accordance with the invention avoid the time to make these translations and the numerical errors that such translations can introduce.

Various changes in the materials, components, circuit elements, as well as in the details of the illustrated operational methods are possible without departing from the scope of the following claims. For instance, the inventive technology is applicable to characterizing and simulating systems other than the memory subsystem described above (e.g., as shown in FIG. 1). In addition, acts in accordance with FIG. 3 may be performed by a programmable control device executing instructions organized into one or more program modules. A programmable control device may be a single computer processor, a special purpose processor (e.g., a digital signal processor, “DSP”), a plurality of processors coupled by a communications link or a custom designed state machine. Custom designed state machines may be embodied in a hardware device such as an integrated circuit including, but not limited to, application specific integrated circuits (“ASICs”) or field programmable gate array (“FPGAs”). Storage devices suitable for tangibly embodying program instructions include, but are not limited to: magnetic disks (fixed, floppy, and removable) and tape; optical media such as CD-ROMs and digital video disks (“DVDs”); and semiconductor memory devices such as Electrically Programmable Read-Only Memory (“EPROM”), Electrically Erasable Programmable Read-Only Memory (“EEPROM”), Programmable Gate Arrays and flash devices. 

1. A method to simulate the electrical behavior of two interconnected electronic networks, comprising: obtaining a first S-matrix representation of a first electronic network, the first electronic network having a first port; obtaining a second S-matrix representation of a second electronic network, the second electronic network having a second port; calculating a third S-matrix directly from the first and second S-matrix representations, the third S-matrix representing the first electronic network connected to the second electronic network through the first and second ports; and simulating the interconnected electronic networks using the third S-matrix.
 2. The method of claim 1, wherein the act of calculating is performed for each pair of ports that connect the first and second electronic networks.
 3. The method of claim 1, wherein the first S-matrix represents two or more interconnected electronic networks.
 4. The method of claim 1, wherein each of the first and second S-matrices represent two or more interconnected electronic networks.
 5. A method to simulate the electrical behavior of interconnected electronic networks, comprising: identifying a first port in a first electronic network, wherein the first electronic network is represented by a first S-matrix having a-rows and c-columns; identifying a second port in a second electronic network, wherein the second electronic network is represented by a second S-matrix having b-rows and d-columns; calculating a third S-matrix directly from the first and second S-matrix representations, the third S-matrix representing an electronic network wherein the first port in the first electronic network is coupled to the second port in the second electronic network, the third S-matrix having (a+b−2)-rows and (c+d−2)-columns; and simulating the interconnected electronic networks using the third S-matrix.
 6. The method of claim 5, wherein each of the first and second S-matrices represent two or more interconnected electronic circuits.
 7. The method of claim 5, further comprising simulating the interconnected electronic network directly using the third S-matrix.
 8. A method to simulate the electrical behavior of interconnected electronic networks, comprising: identifying a first port in a first electronic network, wherein the first electronic network is represented by a first S-matrix; identifying a second port in a second electronic network, wherein the second electronic network is represented by a second S-matrix; calculating a third S-matrix directly from the first and second S-matrices, the third S-matrix representing the disconnected first and second electronic networks, the third S-matrix having a-rows and b-columns; calculating a fourth S-matrix directly from the third S-matrix, the fourth S-matrix representing an electronic network wherein the first electronic network is connected to the second electronic network, the fourth S-matrix having (a−2) rows and (b−2) columns; and simulating the electronic network represented by the fourth S-matrix directly using the fourth S-matrix.
 9. The method of claim 8, wherein each of the first and second S-matrices represent two or more interconnected electronic circuits.
 10. The method of claim 8, wherein the act of calculating the third S-matrix comprises: assigning the first S-matrix to a first row, first column element in the third S-matrix; assigning the second S-matrix to a second row, second column element in the third S-matrix; and assigning zeros (0) in all other elements in the third S-matrix.
 11. A method to simulate the electrical behavior of interconnected electronic circuits, comprising: obtaining an S-parameter description of a first electronic circuit; obtaining an S-parameter description of a second electronic circuit; computing an S-parameter description of the first electronic circuit connected to the second electronic circuit directly from the obtained S-parameter descriptions of the first and second electronic circuits; and simulating the electronic circuit represented by the computed S-parameter description using the computed S-parameter description.
 12. The method of claim 11, further comprising generating a disconnected S-parameter description of the first and second electronic circuits, the disconnected S-parameter description representing the first electronic circuit and the second electronic circuit with no connections between them, the disconnected S-parameter description having a-rows and b-columns.
 13. The method of claim 12, wherein the act computing the S-parameter description of the first electronic circuit connected to the second electronic circuit results in an S-parameter description having two rows and two columns less than the disconnected S-parameter description for each connection between the first and second electronic circuits.
 14. A method of simulating the electrical performance of interconnected electrical circuits, comprising: obtaining a first S-matrix representation of a first electronic circuit, the first electronic circuit having a first port; obtaining a second S-matrix representation of a second electronic circuit, the second electronic circuit having a second port; means for computing a third S-matrix directly from the first and second S-matrix representations, the third S-matrix representing the first electronic circuit coupled to the second electronic circuit via the first and second ports; and simulating the electrical performance of the interconnected first and second electronic circuits using the third S-matrix.
 15. The method of claim 14, further comprising means for computing a fourth S-matrix representing the first electronic circuit disconnected from the second electronic circuit.
 16. The method of claim 15, wherein the means for computing the third S-matrix results in an S-matrix that has 2 fewer rows and 2 fewer columns than the fourth S-matrix for each connection between the first and second electronic circuits.
 17. The method of claim 14, wherein the first S-matrix represents two or more electronic networks.
 18. The method of claim 14, wherein each of the first and second S-matrices represent two or more multi-port networks.
 19. A program storage device, readable by a programmable control device, comprising instructions stored on the program storage device for causing the programmable control device to perform one of the methods of claim 1, 5, 8, 11 or
 14. 